package com.aaa.java10;

import java.util.InputMismatchException;
import java.util.Scanner;

/**
 * @author ：Teacher陈（86521760@qq.com）
 * @date ：Created in 2022/7/13 14:19
 * @description：测试异常
 * @modified By：
 * @version: 1.0
 */
public class TestException {
    public static void main(String[] args) {
        try {
            //计算两个数的商
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入被除数");
            int i = scanner.nextInt();
            System.out.println("请输入除数");
            int j = scanner.nextInt();
            //  System.out.println("结果："+(i/j));

            System.out.println("结果：" + (i / j));
           // return ;
            //凡是出现捕获多个异常的场景，一定要先捕获子类异常，后捕获父类异常
            //尽量避免捕获范围过大的异常，例如RuntimeException，因为范围过大，无法准确区分具体异常
        }  catch (ArithmeticException e) {
            System.out.println("算术异常，除数不能为零！");
            System.out.println("错误的详细信息如下：");
            /**
             * java.lang.ArithmeticException: / by zero
             * 	at com.aaa.java10.TestException.main(TestException.java:24)
             */
            //打印错误的值栈跟踪，错误详情
            e.printStackTrace();
        }catch (InputMismatchException e) {
            System.out.println("输入不匹配异常，输入的不是数字");
            e.printStackTrace();
            //如果finally之前有return出现，finally中的内容继续执行，
            // 但是不推荐在catch语句中出现return
           // return ;
        }finally {
            System.out.println("程序的兜底处理");
        }

        System.out.println("程序结束");

    }
}
